#define _CRT_SECURE_NO_WARNINGS
struct ListNode
{
    int data;
    struct ListNode n;
};
#include <stdio.h>
int main()
{
    int k = 45, r, c;
    int arr[4][4];
    int arr1[25] = { 0,0,0,0,0,0,10000,36,720,360,80,252,108,72,54,180,72,180,119,36,306,1080,144,1800,3600 };
    for (int i = 1; i < 4; i++)
    {
        for (int j = 1; j < 4; j++)
        {
            scanf("%d", &arr[i][j]);
            k -= arr[i][j];
            if (arr[i][j] == 0)
            {
                r = i;
                c = j;
            }
        }
    }
    arr[r][c] = k;
    for (int i = 0; i < 3; i++)
    {
        int x, y;
        scanf("%d%d", &x, &y);
        printf("%d\n", arr[x][y]);
    }
    int n = 0, sum = 0;
    scanf("%d", &n);
    if (n <= 3)
    {
        for (int i = 1; i < 4; i++)
            sum += arr[n][i];
    }
    else if (n <= 6)
    {
        for (int i = 1; i < 4; i++)
            sum += arr[i][n - 3];
    }
    else if (n == 7)
    {
        sum = arr[1][1] + arr[2][2] + arr[3][3];

    }
    else if (n == 8)
    {
        sum = arr[1][3] + arr[2][2] + arr[3][1];
    }
    printf("%d\n", arr1[sum]);
    return 0;
}
//#define TypeNode int 
//#include <stdio.h>
//typedef struct ListNode
//{
//	TypeNode data;
//	struct Node* next;
//}LNode;
//
//int main()
//{
//	return 0;
//}
//#include <stdio.h>
//#include <string.h>
//#include <ctype.h>
//int Judge(char s)
//{
//    if ((s >= '0' && s <= '9') || (s >= 'a' && s <= 'z') || (s >= 'A' && s <= 'Z'))
//        return 0;
//    return 1;
//}
//
//
//void delblank(char* s, int* len)
//{
//    for (int i = 0; i < *len; i++)
//    {
//        if (s[0] == ' ')
//        {
//            for (int j = 0; j < *len - 1; j++)
//            {
//                s[j] = s[j + 1];
//            }
//            *len = *len - 1;
//        }
//        if (s[i] == ' ' && Judge(s[i + 1]))
//        {
//            for (int m = i; m < *len; m++)
//            {
//                s[m] = s[m + 1];
//            }
//            i--;
//            *len = *len - 1;
//        }
//    }
//}
//
//
//void my_tolower(char* s, int len)
//{
//    for (int i = 0; i < len; i++)
//    {
//        if (isupper(s[i]) && s[i] != 'I')
//            s[i] = tolower(s[i]);
//    }
//}
//
//void rep_print(char* s, int len)
//{
//    printf("AI: ");
//    for (int i = 0; i < len; i++)
//    {
//        if ((s[i] == 'c' && s[i + 1] == 'o' && s[i + 2] == 'u' && s[i + 3] == 'l' && s[i + 4] == 'd' && s[i + 5] == ' ' && s[i + 6] == 'y' && s[i + 7] == 'o' && s[i + 8] == 'u') && (i == 0 || s[i - 1] == ' ') && (s[i + 9] == ' ' || s[i + 9] == '\0' || Judge(s[i + 9])))
//        {
//            printf("I could");
//            i += 8;
//        }
//        else if ((s[i] == 'c' && s[i + 1] == 'a' && s[i + 2] == 'n' && s[i + 3] == ' ' && s[i + 4] == 'y' && s[i + 5] == 'o' && s[i + 6] == 'u') && (i == 0 || s[i - 1] == ' ') && (s[i + 7] == ' ' || s[i + 7] == '\0' || Judge(s[i + 7])))
//        {
//            printf("I can");
//            i += 6;
//        }
//        else if (s[i] == 'I' && (i == 0 || s[i - 1] == ' ') && (s[i + 1] == ' ' || s[i + 1] == '\0' || Judge(s[i + 1])))
//            printf("you");
//        else if ((s[i] == 'm' && s[i + 1] == 'e') && (i == 0 || Judge(s[i - 1])) && (s[i + 2] == ' ' || s[i + 2] == '\0' || Judge(s[i + 2])))
//        {
//            printf("you");
//            i += 1;
//        }
//        else if (s[i] == '?')
//            printf("!");
//        else
//            printf("%c", s[i]);
//    }
//    printf("\n");
//}
//int main()
//{
//    int n;
//    char s[1001] = { 0 };
//    scanf("%d", &n);
//    getchar();
//    for (int i = 0; i < n; i++)
//    {
//        gets(s);
//        int len = strlen(s);
//        printf("%s\n", s);
//        delblank(s, &len);
//        my_tolower(s, len);
//        rep_print(s, len);
//    }
//    return 0;
//}